/*
 * Compresor.cpp
 *
 *  Created on: Jun 9, 2014
 *      Author: carlos
 */

#include "Compresor.h"
#include "../../compresion/lz/CompresorFactory.h"
Compresor::Compresor(string claveComando, string description,
		FileHandler* fileHandler): Command(claveComando, description,fileHandler){

}


void Compresor::execute(int argc, char** argv) {
		if(argc<3){
			cout<<"se necesita el tipo de compresor a utilizar"<<endl;
			return;//TODO sacar este asqueroso retur y usar una exception
		}
		static string tipoCompresor(argv[2]);
		cout<<"buscando el compresor configurado "<<tipoCompresor<<endl;
		ICompresor* compresor=CompresorFactory::getCompresor(tipoCompresor);
		if(compresor==NULL){
			cout<<"El compresor "<<tipoCompresor<<" no esta configurado"<<endl;
			return;
		}
		if(argv[1]==COMPRIMIR){
			compresor->compimir(argv[3],argv[4]);
		}
		if(argv[1]==DESCOMPRIMIR){
			compresor->descompimir(argv[3],argv[4]);
		}


}


Compresor::~Compresor() {
}

